#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Módulos 
import sys, gtk, pygame, utils, objetos
from pygame.locals import *
# Constantes
 
# Clases
# ---------------------------------------------------------------------
class ObjGrafico(pygame.sprite.Sprite):
    def __init__(self, path, x, y, t=True ):
        pygame.sprite.Sprite.__init__(self)
        self.image = utils.load_image(path, t)
        self.rect = self.image.get_rect()
        self.rect.centerx = x*utils.RES
        self.rect.centery = y*utils.RES


class Lamparita(pygame.sprite.Sprite):
    def __init__(self, x, y):
        pygame.sprite.Sprite.__init__(self)
        self.sonido = pygame.mixer.Sound("sounds/eureka.ogg")
        self.image = utils.load_image("images/lamparita_chica.png", True)
        self.rect = self.image.get_rect()
        self.rect.centerx = x
        self.rect.centery = y
        self.sonido.set_volume(0.1)   
        self.flag_sonido = True
 

# Funciones
# ---------------------------------------------------------------------
 
 
# ---------------------------------------------------------------------
 
def dibujar(screen,cursor_picture, clock):
    	salir = 0
    	background_image = utils.load_image('images/fondo5.png')

    	#boton de la flecha para continuar
    	btn_adelante = objetos.BotonAdelante()
    	btn_atras = objetos.BotonAtras()

    	#texto superior derecho que indica el numero de clase
    	clase2, clase2_rect = utils.texto_clase("Clase 5", 750*utils.RES, 15*utils.RES)
        titulo1, titulo1_rect = utils.textodream("2) ELEGIMOS UN TEMA"    ,    140*utils.RES, 40*utils.RES, 24, color=(255, 0, 0))
        titulo2, titulo2_rect = utils.textodream(".............................",   140*utils.RES, 55*utils.RES, 24, color=(255, 0, 0))    

        advertencia, advertencia_rect = utils.textodream("HAZ CLICK EN LA LAMPARITA",   300*utils.RES, 250*utils.RES, 26, color=(255, 0, 0))    
        advertencia2, advertencia2_rect = utils.textodream("PARA VER LAS INSTRUCCIONES", 300*utils.RES, 280*utils.RES, 26, color=(255, 0, 0))    

        preg, preg_rect = utils.textotlb("Con tantas opciones.... ¿Cómo seleccionamos un tema?."    ,    330*utils.RES, 90*utils.RES, 20, color=(0, 0, 0))

    	bt1 = utils.BloqueTexto()
    	bt1.agregarParrafo('''En las clases anteriores hemos tratado los problemas del agua y de los desechos sólidos.''', 
				80, 350, 110 )
    	bt1.agregarParrafo('''En esta etapa, vamos a elegir el problema que consideramos que debe ser atendido con más urgencia para mejorar la vida de nuestra comunidad.''', 
				80, 350, 130 )
    	bt1.agregarParrafo('''Para eso, vamos a analizar los datos de las Guías de Acción Semanal. Podemos investigar un poco más leyendo la información de cada clase o en otros manuales.''', 
				80, 350, 150 )
    	bt1.agregarParrafo('''Discutiendo entre todos, definan si elegirán trabajar AGUA o DESECHOS SÓLIDOS. Pueden seleccionar una o varias partes del tema.''', 
				80, 350, 170 )

	bt1l, bt1lrect = bt1.obtener_gui(True)

	frame = 0
	lamparita = Lamparita(500*utils.RES, 80*utils.RES)
	show_dialog = False
	sonidoClick = pygame.mixer.Sound("sounds/click.wav")

    	while salir == 0:
		frame = frame + 1
	    	# Pump GTK messages.
		while gtk.events_pending():
			gtk.main_iteration()
			
		for eventos in pygame.event.get():
			if eventos.type == QUIT:
				sys.exit(0)
			elif eventos.type == pygame.VIDEORESIZE:
			   pygame.display.set_mode(eventos.size, pygame.RESIZABLE)	
			elif eventos.type == MOUSEBUTTONDOWN:
				x, y = pygame.mouse.get_pos()
				if btn_adelante.rect.collidepoint(x, y):
					salir = 6
					btn_adelante.sonido.play()	
				elif btn_atras.rect.collidepoint(x, y):
					salir = 4
					btn_atras.sonido.play()	
				elif lamparita.rect.collidepoint(pygame.mouse.get_pos()):
					lamparita.sonido.play()	
					frame = 0
					if show_dialog == False:
						show_dialog = True
					else:
						show_dialog = False	


		# Realiza la animacion del texto				

		screen.blit(background_image, (0, 0))
		screen.blit(clase2, clase2_rect)
		screen.blit(titulo1, titulo1_rect)
		screen.blit(titulo2, titulo2_rect)

		screen.blit(preg, preg_rect)

		if show_dialog == True:
			if (frame == 36 or frame == 76 or frame == 116 or frame == 1):
				sonidoClick.play()	

			if frame < 40:
				for nl in range (0,2):
						screen.blit(bt1l[nl], bt1lrect[nl])
			elif frame < 80:
				for nl in range (0,4):
					screen.blit(bt1l[nl], bt1lrect[nl])			
			elif frame < 120:
				for nl in range (0,7):
					screen.blit(bt1l[nl], bt1lrect[nl])			

			elif frame < 160:
				for nl in range (0,9):
					screen.blit(bt1l[nl], bt1lrect[nl])			

			else:
				screen.blit(preg, preg_rect)
				for nl in range (0,len(bt1l)):
					screen.blit(bt1l[nl], bt1lrect[nl])

		else:
			screen.blit(advertencia, advertencia_rect)
			screen.blit(advertencia2, advertencia2_rect)

		if frame <= 10:
			lamparita.rect.center = ((600-frame)*utils.RES, 80*utils.RES)
		elif frame <= 20:
			lamparita.rect.center = ((590+frame-10)*utils.RES, 80*utils.RES)
		elif frame <= 30:
			lamparita.rect.center = ((600+frame-20)*utils.RES, 80*utils.RES)
		elif frame <= 40:
			lamparita.rect.center = ((610-(frame-30))*utils.RES, 80*utils.RES)
		else:
			lamparita.rect.center = (600*utils.RES, 80*utils.RES)

		screen.blit(lamparita.image, lamparita.rect)

		screen.blit(btn_adelante.image, btn_adelante.rect)
		screen.blit(btn_atras.image, btn_atras.rect)		
		screen.blit(cursor_picture, pygame.mouse.get_pos())
		pygame.display.flip()

		# Try to stay at 30 FPS
		clock.tick(30)

	return salir


# ./TestGame.py 
def main():
	
	pygame.init()
	screen = pygame.display.set_mode((int(800*utils.RES), int(520*utils.RES)), pygame.RESIZABLE) #pygame.display.get_surface() #

	# Fake a Sugar cursor for the pyGame canvas area
	pygame.mouse.set_cursor((8,8),(0,0),(0,0,0,0,0,0,0,0),(0,0,0,0,0,0,0,0))
	cursor_picture = pygame.image.load('images/standardcursor.png')
	cursor_picture.convert_alpha() 
	clock = pygame.time.Clock()
	dibujar(screen,cursor_picture,clock)

if __name__ == '__main__':
   main()
